// pages/list/list.js
Page({
  data: {
    list: [],
    // 存储已收藏的ID，用于初始化状态
    collectedIds: []
  },

  onLoad() {
    this.loadData();
    this.checkCollectedStatus(); // 加载时检查已收藏状态
  },

  // 加载列表数据
  loadData() {
    wx.showLoading({
      title: '加载中...',
      mask: true
    })

    wx.cloud.database().collection('qbzy')
      .get()
      .then(res => {
        console.log('数据加载成功', res)
        // 初始化每个项的收藏状态（默认未收藏）
        const list = res.data.map(item => ({
          ...item,
          isCollect: false
        }));
        this.setData({ list })
      })
      .catch(err => {
        console.error('数据加载失败', err)
        wx.showToast({
          title: '加载失败，请重试',
          icon: 'none'
        })
      })
      .finally(() => {
        wx.hideLoading()
      })
  },

  // 检查已收藏状态（从collect集合获取）
  checkCollectedStatus() {
    wx.cloud.database().collection('collect')
      .get()
      .then(res => {
        // 提取已收藏的原数据ID
        const collectedIds = res.data.map(item => item.newId);
        this.setData({ collectedIds });

        // 更新列表中已收藏项的状态
        const { list } = this.data;
        const updatedList = list.map(item => ({
          ...item,
          isCollect: collectedIds.includes(item._id)
        }));
        this.setData({ list: updatedList });
      })
      .catch(err => {
        console.error('检查收藏状态失败', err);
      })
  },

  // 跳转到详情页
  goDetail(e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/collect/collect?id=${id}`
    })
  },

  // 收藏功能
  collect(e) {
    const item = e.currentTarget.dataset.item; // 获取当前项数据

    wx.showLoading({
      title: '收藏中...',
      mask: true
    })

    // 构造收藏数据（根据实际字段调整）
    const collectData = {
      newId: item._id,       // 原数据ID
      zy: item.zy,           // 职业
      xz: item.xz,           // 薪资
      gs: item.gs,           // 公司
      sb: item.sb,           // 图片
      collectTime: new Date() // 收藏时间
    };

    wx.cloud.database().collection('collect')
      .add({ data: collectData })
      .then(res => {
        console.log('收藏成功', res);
        wx.showToast({ title: '收藏成功' });

        // 更新本地状态
        this.updateCollectStatus(item._id, true);
      })
      .catch(err => {
        console.error('收藏失败', err);
        wx.showToast({ title: '收藏失败', icon: 'none' });
      })
      .finally(() => {
        wx.hideLoading();
      })
  },

  // 取消收藏
  cancelCollect(e) {
    const id = e.currentTarget.dataset.id;

    wx.showModal({
      title: '提示',
      content: '确定取消收藏吗？',
      success: (res) => {
        if (res.confirm) {
          wx.showLoading({ title: '取消中...', mask: true });

          wx.cloud.database().collection('collect')
            .where({ newId: id }) // 根据原数据ID查询
            .remove()
            .then(res => {
              console.log('取消收藏成功', res);
              wx.showToast({ title: '已取消收藏' });

              // 更新本地状态
              this.updateCollectStatus(id, false);
            })
            .catch(err => {
              console.error('取消收藏失败', err);
              wx.showToast({ title: '取消失败', icon: 'none' });
            })
            .finally(() => {
              wx.hideLoading();
            })
        }
      }
    })
  },

  // 更新本地收藏状态
  updateCollectStatus(id, isCollect) {
    const { list } = this.data;
    const updatedList = list.map(item => {
      if (item._id === id) {
        return { ...item, isCollect };
      }
      return item;
    });
    this.setData({ list: updatedList });
  }
})